import java.util.HashSet;
import java.util.Set;

/**
 * @ Author     ：侯耀祖
 * @ Description：
 */
public class problem3 {
    public int lengthOfLongestSubstring(String s) {
//        int a = 0;
//        int j = 0;
//        int i = 0;
//        StringBuilder cs = new StringBuilder();
//        while (i < s.length()) {
//            if (cs.indexOf(String.valueOf(s.charAt(i))) == -1) {
//                cs.append(s.charAt(i));
//                if (cs.length()>a){
//                    a=cs.length();
//                }
//                i++;
//            }else {
//                cs.delete(0, cs.length());
//                j += 1;
//                i = j;
//            }
//        }
//        return a;
        Set<Character> occ = new HashSet<Character>();
        int n = s.length();
        int i = 0, j = 0;
        int a = 0;
        while (i < s.length()) {
            if (!occ.contains(s.charAt(i))) {
                occ.add(s.charAt(i));
                if (occ.size() > a) {
                    a = occ.size();
                }
                i++;
            } else {
                occ.clear();
                j = j + 1;
                i = j;
            }
        }

        return a;
    }
}
